import { IPSModelObject } from '../../ipsmodel-object';
import { IPSDEAction } from './ipsdeaction';
import { IPSDEDataSet } from '../ds/ipsdedata-set';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEActionGroupDetail
 */
export interface IPSDEActionGroupDetail extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 代码名称2
   * @type {string}
   */
  codeName2: string;

  /**
   * 成员类型
   * @description 值模式 [实体行为组成员类型] {DEACTION：实体行为、 DEDATASET：实体结果集 }
   * @type {( string | 'DEACTION' | 'DEDATASET')}
   */
  detailType: string | 'DEACTION' | 'DEDATASET';

  /**
   * 排序值
   * @type {number}
   */
  orderValue: number;

  /**
   * 实体行为
   *
   * @type {IPSDEAction}
   */
  getPSDEAction(): IPSDEAction | null;

  /**
   * 实体行为
   *
   * @type {IPSDEAction}
   */
  get psDEAction(): IPSDEAction | null;

  /**
   * 实体行为（必须存在）
   *
   * @type {IPSDEAction}
   */
  getPSDEActionMust(): IPSDEAction;

  /**
   * 实体数据集
   *
   * @type {IPSDEDataSet}
   */
  getPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 实体数据集
   *
   * @type {IPSDEDataSet}
   */
  get psDEDataSet(): IPSDEDataSet | null;

  /**
   * 实体数据集（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getPSDEDataSetMust(): IPSDEDataSet;
}
